import { LoginResult } from "@/api/login";
import { defineStore } from "pinia";
import { computed, ref } from "vue";

export const useMemberStore = defineStore(
  "member",
  () => {
    // 用户信息全局数据
    const profile = ref({} as LoginResult);

    // 修改用户信息的方法
    const setProfile = (newProfile: LoginResult) => {
      profile.value = newProfile;
    };

    // 是否登录的全局计算属性
    const isLogin = computed(() => {
      return !!profile.value.token;
    });

    return { profile, setProfile, isLogin };
  },
  {
    // web端的使用方式
    // persist: true,  // localStorage
    // uniapp的使用方式
    persist: {
      storage: {
        getItem(key) {
          return uni.getStorageSync(key);
        },
        setItem(key, value) {
          uni.setStorageSync(key, value);
        },
      },
    },
  }
);
